var express = require('express');
var router = express.Router();
let db = require('../tools/Db');
let to = require('../tools/to');
let jwt = require('jsonwebtoken');
let {secret} = require('../tools/config');

function intercept() {
  return (req, res, next) => {
    let { token = "" } = req.headers;
    if (!token) {
      res.json({ code: 205, data: null, msg: "token为空，请登录" })
      return;
    }
    // 验证token有效性
    jwt.verify(token, secret, async (err, encode) => {
      // 验证失败，err 返回错误消息。
      // 验证成功，encode为paylaod对象
      if (!err) {
        // 进一步验证时间有效性
        if (Date.now() > encode.exp) {
          res.json({ code: 205, data: null, msg: "token已失效，请重新登录" })
          return;
        } else {
          // token还在有效期，可以提供接口服务
          next()
        }
      } else {
        res.json({ code: 205, data: null, msg: "token无效，请检查" })
        return;
      }
    })
  }
}

module.exports = intercept;